package stackdemo;

import java.util.*;
public class Solution {
    public boolean IsPopOrder (int[] pushV, int[] popV) {
        Stack<Integer> stack=new Stack<>();
        int i=0;
        int j=0;
        for(i=0;i<pushV.length;i++){
            stack.push(pushV[i]);
            while(!stack.isEmpty() && stack.peek() == popV[j]){
                stack.pop();
                j++;
            }
        }
        return stack.isEmpty();
    }

}
//import java.util.Stack;
//
//class stackdemo.Solution {
//    public int evalRPN(String[] tokens) {
//        Stack<Integer> stack = new Stack<>();
//        for (String s : tokens) {
//            if (!isOperator(s)) {
//                stack.push(Integer.parseInt(s));
//            } else {
//                int n2 = stack.pop();
//                int n1 = stack.pop();
//                switch (s) {
//                    case "+":
//                        stack.push(n1 + n2);
//                        break;
//                    case "-":
//                        stack.push(n1 - n2);
//                        break;
//                    case "*":
//                        stack.push(n1 * n2);
//                        break;
//                    case "/":
//                        stack.push(n1 / n2);
//                        break;
//                }
//            }
//        }
//        return stack.peek();
//    }
//    public boolean isOperator(String str) {
//        return str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/");
//    }
//}

//import java.util.Stack;
//
//class stackdemo.Solution {
//    public boolean isValid(String s) {
//        Stack<Character> stack = new Stack<>();
//        for (int i = 0; i < s.length(); i++) {
//            char ch = s.charAt(i);
//            if (ch == '(' || ch == '[' || ch == '{') {
//                stack.push(ch);
//            } else {
//                if (stack.empty()) {
//                    return false;
//                }
//                char top = stack.pop();
//                if ((top == '(' && ch != ')') ||
//                        (top == '[' && ch != ']') ||
//                        (top == '{' && ch != '}')) {
//                    return false;
//                }
//            }
//        }
//        return stack.empty();
//    }
//}
